Skip to content

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Oct 10, 2025

Description

This PR fixes an issue where a DataWriter with a deadline period of 0ms would cause a high CPU load due to an infinite loop of deadline_missed callbacks.

The DataWriterImpl has been modified to handle a 0 as a special case. When this condition is detected:

  • A single warning is logged.
  • The deadline_missed_status_.total_count and deadline_missed_status_.total_count_change are set to INT_MAX as a sentinel value.

This ensures that the DataWriter remains stable and responsive, and allows the deadline timer to be properly re-armed if the QoS is later changed to a valid value.
Also, reaching the maximal number of deadline missed messages cancels the timer.

Fixes #23289

@Mergifyio backport 3.3.x 3.2.x 2.14.x

Contributor Checklist

  • Commit messages follow the project guidelines.

  • The code follows the style guidelines of this project.

  • Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added; the added tests pass locally

  • [N/A] Any new/modified methods have been properly documented using Doxygen.

  • [N/A] Any new configuration API has an equivalent XML API (with the corresponding XSD extension)

  • Changes are backport compatible: they do NOT break ABI nor change library core behavior.

  • Changes are API compatible.

  • [N/A] New feature has been added to the versions.md file (if applicable).

  • [N/A] New feature has been documented/Current behavior is correctly described in the documentation.

  • Applicable backports have been included in the description.

Reviewer Checklist

  • The PR has a milestone assigned.
  • The title and description correctly express the PR's purpose.
  • Check contributor checklist is correct.
  • If this is a critical bug fix, backports to the critical-only supported branches have been requested.
  • Check CI results: changes do not issue any warning.
  • Check CI results: failing tests are unrelated with the changes.

This is an automatic backport of pull request #6016 done by [Mergify](https://mergify.com).

@mergify mergify bot added the conflicts Backport PR wich git cherry pick failed label Oct 10, 2025
Copy link
Contributor Author

mergify bot commented Oct 10, 2025

Cherry-pick of 3230d1d has failed:

On branch mergify/bp/2.14.x/pr-6016
Your branch is up to date with 'origin/2.14.x'.

You are currently cherry-picking commit 3230d1d7.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   src/cpp/fastdds/subscriber/DataReaderImpl.hpp
	modified:   test/blackbox/api/dds-pim/PubSubReader.hpp
	modified:   test/blackbox/api/dds-pim/PubSubWriter.hpp
	new file:   test/utils/LogCounter.hpp

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   src/cpp/fastdds/publisher/DataWriterImpl.cpp
	both modified:   src/cpp/fastdds/publisher/DataWriterImpl.hpp
	both modified:   src/cpp/fastdds/subscriber/DataReaderImpl.cpp
	both modified:   test/blackbox/CMakeLists.txt
	both modified:   test/blackbox/common/BlackboxTestsDeadlineQos.cpp

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

@mergify mergify bot mentioned this pull request Oct 10, 2025
12 tasks
@juanlofer-eprosima juanlofer-eprosima added this to the v2.14.6 milestone Oct 10, 2025
@juanlofer-eprosima
Copy link
Contributor

@zesk1999 please solve conflicts here

@juanlofer-eprosima juanlofer-eprosima removed the conflicts Backport PR wich git cherry pick failed label Oct 14, 2025
@juanlofer-eprosima juanlofer-eprosima requested review from richiprosima and removed request for richiprosima October 14, 2025 07:38
@github-actions github-actions bot added the ci-pending PR which CI is running label Oct 14, 2025
@zesk1999 zesk1999 force-pushed the mergify/bp/2.14.x/pr-6016 branch from 973535e to ccfb5d5 Compare October 14, 2025 08:20
@zesk1999 zesk1999 force-pushed the mergify/bp/2.14.x/pr-6016 branch from ccfb5d5 to 3d5bccd Compare October 14, 2025 13:46
@zesk1999 zesk1999 requested review from juanlofer-eprosima and removed request for juanlofer-eprosima October 14, 2025 13:49
Copy link
Contributor Author

mergify bot commented Oct 14, 2025

🧪 CI Insights

Here's what we observed from your CI run for 7fd176c.

❌ Job Failures

Pipeline Job Health on 2.14.x Retries 🔍 CI Insights 📄 Logs
Fast-DDS MacOS CI mac-ci / reusable-mac-ci (RelWithDebInfo) Unknown 0 View View

@zesk1999 zesk1999 force-pushed the mergify/bp/2.14.x/pr-6016 branch from 3d5bccd to dbd3e05 Compare October 15, 2025 07:05
@zesk1999 zesk1999 requested review from juanlofer-eprosima and removed request for juanlofer-eprosima October 15, 2025 07:08
@zesk1999 zesk1999 force-pushed the mergify/bp/2.14.x/pr-6016 branch 2 times, most recently from 2f72993 to 5c2753d Compare October 15, 2025 10:55
@zesk1999 zesk1999 requested review from juanlofer-eprosima and removed request for juanlofer-eprosima October 15, 2025 10:56
* Refs #23289. Handle maximum deadline misses case. Data writer implementation.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

* Refs #23289. Handle maximum deadline misses case. Data reader implementation.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

* Refs #23289. Handle maximum deadline misses case. Tests.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

---------

Signed-off-by: zesk1999 <zesk1999@gmail.com>
(cherry picked from commit 3230d1d)
Signed-off-by: zesk1999 <zesk1999@gmail.com>

# Conflicts:
#	src/cpp/fastdds/publisher/DataWriterImpl.cpp
#	src/cpp/fastdds/publisher/DataWriterImpl.hpp
#	src/cpp/fastdds/subscriber/DataReaderImpl.cpp
#	test/blackbox/CMakeLists.txt
#	test/blackbox/common/BlackboxTestsDeadlineQos.cpp
@zesk1999 zesk1999 force-pushed the mergify/bp/2.14.x/pr-6016 branch from 5c2753d to 7fd176c Compare October 15, 2025 14:34
@zesk1999 zesk1999 removed the request for review from juanlofer-eprosima October 15, 2025 14:37
Copy link
Contributor

@juanlofer-eprosima juanlofer-eprosima left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@juanlofer-eprosima juanlofer-eprosima merged commit 404c0e3 into 2.14.x Oct 16, 2025
18 of 19 checks passed
@juanlofer-eprosima juanlofer-eprosima deleted the mergify/bp/2.14.x/pr-6016 branch October 16, 2025 06:34
Barry-Xu-2018 pushed a commit to Barry-Xu-2018/Fast-DDS that referenced this pull request Oct 17, 2025
* Refs #23289. Handle maximum deadline misses case. Data writer implementation.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

* Refs #23289. Handle maximum deadline misses case. Data reader implementation.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

* Refs #23289. Handle maximum deadline misses case. Tests.

Signed-off-by: zesk1999 <zesk1999@gmail.com>

---------

Signed-off-by: zesk1999 <zesk1999@gmail.com>
(cherry picked from commit 3230d1d)
Signed-off-by: zesk1999 <zesk1999@gmail.com>

Co-authored-by: Zeljko Jovanovic <128973134+zesk1999@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-pending PR which CI is running

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants